<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <meta http-equiv="X-UA-Compatible" content="IE=edge" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <title>Document</title>
  </head>
  <body>
    <div id="app">
      <!-- 侦听器一次只能侦听一个变量，计算属性可以同时依赖多个响应式数据 -->
      <!-- 侦听器是主动的，自己改变的时候影响别人；计算属性是被动，别人不改变的时候被动地动 -->

      <!-- 在都能用的情况下，无脑地选择计算属性（缓存） -->
      <!-- 计算属性不能用(异步的,或者开销非常大的)的情况下，再使用侦听器 -->

      <input type="text" v-model="firstname" /> +
      <input type="text" v-model="lastname" />
      <p>{{ fullname }}</p>
    </div>

    <script src="./Vue3.js"></script>
    <script>
      const { createApp } = Vue;

      createApp({
        data() {
          return {
            firstname: "zhang",
            lastname: "san",
            // fullname: "zhangsan",
          };
        },

        // watch: {
        //   firstname(val) {
        //     this.fullname = val + this.lastname;
        //   },
        //   lastname(val) {
        //     this.fullname = this.firstname + val;
        //   },
        // },

        computed: {
          fullname() {
            return this.firstname + this.lastname;
          },
        },
      }).mount("#app");
    </script>
  </body>
</html>
